engineering project based learning free market learning education personal responsibility problem-solving skills player liberty programming by demonstration technology libertarian